/**
 * Created by zi on 2017/4/22.
 */
// 移动端去除默认样式
import '../../common/style/reset_7043.css'
import Vue from 'vue'
// import VueRouter from 'vue-router'
import axios from 'axios'
// import VueResource from 'vue-resource'
import Vuex from 'vuex'
import Laohuji from './Laohuji.vue'
import FastClick from 'fastclick'

if ('addEventListener' in document) {
  document.addEventListener('DOMContentLoaded', function() {
    FastClick.attach(document.body);
  }, false);
}

Vue.config.productionTip = false
Vue.prototype.$http = axios

// Vue.use(VueResource);
Vue.use(Vuex);
// Vuex 允许我们将 store 分割到模块（module）。
// 每个模块拥有自己的 state、mutation、action、getters、甚至是嵌套子模块——从上至下进行类似的分割
const store = new Vuex.Store({
  // 存储整个应用的状态数据 vuex的单一状态树，使用一个对象就包含了应用层的所有状态
  state:{
    isWin:false
  },
  // 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
  // mutation中写有修改数据的逻辑。
  mutations:{
    isWarnFun(state){
      state.isWin = !state.isWin
    }
  },
  // 对于store中数据的修改操作动作在action中提交。
  actions: {
    increment (context) {
      context.commit('isWarnFun')
    }
  },
  // 对于state中数据的一种过滤，属于一种加强属性
  getters: {}
})

// // 0. 如果使用模块化机制编程，導入Vue和VueRouter，要调用
// Vue.use(VueRouter);
// // 1. import 出路由组件
// import index from '../../components/Index.vue'
// import personal from '../../components/Personal.vue'
// // 2. 定义路由
// const routes = [
//   { path: '/', component: index },
//   { path: '/personal', component: personal }
// ]
// // 3. 创建 router 实例，然后传 `routes` 配置
// const router = new VueRouter({
//   routes
// })

/* eslint-disable no-new */
new Vue({
  el: '#laohuji',
  store,
  template: '<Laohuji />',
  components: { Laohuji },
  data: {
    eventHub: new Vue()  // 事件(中心)枢纽
  }
})
